/*********属性标志和属性描述符*********/
/**
 * 1.Object.getOwnPropertyDescriptor:允许查询有关属性的 完整 信息
 */
"use strict";
let user = {
    name: "John"
};

console.dir( Object.getOwnPropertyDescriptor(user, 'name'));

/**
 * 2.只读
 */
// Object.defineProperty(user, "name", {
//     writable: false
// });
// console.dir( Object.getOwnPropertyDescriptor(user, 'name'));

// user.name="jane";       //只在严格模式下会出现 Errors
// console.dir(user);

/**
 * 3.不可枚举
 */
user.age=18;
for (let key in user){
    console.info("user1："+key);
}
Object.defineProperty(user, "name", {
    enumerable: false
});
for (let key in user){
    console.info("user2："+key);
}